์ž‘์„ฑ: 2026-03-04 04:03:38์ˆ˜์ •: 2026-03-04 04:03:38

๊ฐœ๋ฐœ์ž ํ•„์ˆ˜ ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜: ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ์ง€๋„

์ข‹์€ ๊ฐœ๋ฐœ์ž๋Š” ๋„๊ตฌ๋ฅผ ์ƒํ™ฉ์— ๋งž๊ฒŒ ๊ณจ๋ผ ์“ธ ์ค„ ์•„๋Š” ์‚ฌ๋žŒ์ž…๋‹ˆ๋‹ค. ์ž๋ฃŒ๊ตฌ์กฐ๋Š” '๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š” ๊ทธ๋ฆ‡'์ด๊ณ , ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ '๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•'์ž…๋‹ˆ๋‹ค. ์ฝ”๋”ฉํ…Œ์ŠคํŠธ์™€ ์‹ค๋ฌด์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํ•ต์‹ฌ ๊ฐœ๋…๋“ค์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.


1. ํ•„์ˆ˜ ์ž๋ฃŒ๊ตฌ์กฐ (Data Structures)

  • Array(๋ฐฐ์—ด): ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์—ฐ์†์ ์œผ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ธ๋ฑ์Šค๋กœ ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผ($O(1)$)ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์‚ฝ์ž…/์‚ญ์ œ๋Š” ๋А๋ฆฝ๋‹ˆ๋‹ค.
  • List(์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ): ๋…ธ๋“œ๋“ค์ด ์—ฐ๊ฒฐ๋œ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค. ์‚ฝ์ž…/์‚ญ์ œ๊ฐ€ ๋น ๋ฅด์ง€๋งŒ ํŠน์ • ์œ„์น˜๋ฅผ ์ฐพ์œผ๋ ค๋ฉด ์ฒ˜์Œ๋ถ€ํ„ฐ ํ›‘์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • Stack(์Šคํƒ): LIFO(Last-In-First-Out, ํ›„์ž…์„ ์ถœ). ๋˜๋Œ๋ฆฌ๊ธฐ(Undo), ๊ด„ํ˜ธ ๊ฒ€์‚ฌ ๋“ฑ์— ์“ฐ์ž…๋‹ˆ๋‹ค.
  • Queue(ํ): FIFO(First-In-First-Out, ์„ ์ž…์„ ์ถœ). ํ”„๋ฆฐํ„ฐ ์ถœ๋ ฅ ๋Œ€๊ธฐ์—ด, BFS ํƒ์ƒ‰์— ์“ฐ์ž…๋‹ˆ๋‹ค.
  • Hash Table(ํ•ด์‹œ): Key-Value ์Œ์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰ ์†๋„๊ฐ€ ์••๋„์ ์œผ๋กœ ๋น ๋ฆ…๋‹ˆ๋‹ค($O(1)$).

2. ํ•„์ˆ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Algorithms)

โ‘  ์ •๋ ฌ (Sorting)

๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.

  • Quick Sort / Merge Sort: ํ‰๊ท ์ ์œผ๋กœ ๊ฐ€์žฅ ๋น ๋ฅด๊ณ  ๋„๋ฆฌ ์“ฐ์ž…๋‹ˆ๋‹ค($O(N \log N)$).

โ‘ก ํƒ์ƒ‰ (Search)

  • Binary Search(์ด์ง„ ํƒ์ƒ‰): ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ์—์„œ ๋ฒ”์œ„๋ฅผ ์ ˆ๋ฐ˜์”ฉ ์ค„์—ฌ๊ฐ€๋ฉฐ ์ฐพ์Šต๋‹ˆ๋‹ค. ๋งค์šฐ ๋น ๋ฆ…๋‹ˆ๋‹ค($O(\log N)$).
  • DFS(๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰): ์Šคํƒ์ด๋‚˜ ์žฌ๊ท€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊นŠ๊ฒŒ ํŒŒ๊ณ ๋“œ๋Š” ํƒ์ƒ‰.
  • BFS(๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰): ํ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ ‘ํ•œ ๋…ธ๋“œ๋ถ€ํ„ฐ ๋„“๊ฒŒ ํผ์ ธ๋‚˜๊ฐ€๋Š” ํƒ์ƒ‰. (์ตœ๋‹จ ๊ฑฐ๋ฆฌ ์ฐพ๊ธฐ์— ์œ ๋ฆฌ)

โ‘ข ๋™์  ๊ณ„ํš๋ฒ• (DP, Dynamic Programming)

  • ํฐ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆ„์–ด ํ’€๊ณ , ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅ(Memoization)ํ•˜์—ฌ ์ค‘๋ณต ๊ณ„์‚ฐ์„ ํ”ผํ•˜๋Š” ์˜๋ฆฌํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

3. ์‹œ๊ฐ„ ๋ณต์žก๋„ (Big-O Notation)

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ฒ™๋„์ž…๋‹ˆ๋‹ค.

  • $O(1)$: ์ƒ์ˆ˜ ์‹œ๊ฐ„ (์ตœ๊ณ )
  • $O(\log N)$: ๋กœ๊ทธ ์‹œ๊ฐ„ (์šฐ์ˆ˜)
  • $O(N)$: ์„ ํ˜• ์‹œ๊ฐ„ (๋ฌด๋‚œ)
  • $O(N^2)$: 2์ค‘ ๋ฃจํ”„ (๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์ง€๋ฉด ์œ„ํ—˜)

4. ํ•™์Šต ํŒ

  1. ๋ˆˆ๋ณด๋‹ค ์†: ์ด๋ก ์„ ๋ณด๊ณ  ์ดํ•ดํ–ˆ๋‹ค๋ฉด, ๋ฐ˜๋“œ์‹œ ์ง์ ‘ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•ด ๋ณด์„ธ์š”.
  2. ์œ ํ˜• ํŒŒ์•…: ๋ฌธ์ œ์˜ ์ œํ•œ ์‚ฌํ•ญ(๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜ ๋“ฑ)์„ ๋ณด๊ณ  ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜($O(N)$์ธ์ง€ $O(N^2)$์ธ์ง€)์„ ์จ์•ผ ํ• ์ง€ ๋จผ์ € ํŒ๋‹จํ•˜๋Š” ์—ฐ์Šต์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

5. ๊ฒฐ๋ก 

์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹จ๊ธฐ๊ฐ„์— ์ •๋ณตํ•˜๊ธฐ ์–ด๋ ต์ง€๋งŒ, ๊พธ์ค€ํžˆ ๊ณต๋ถ€ํ•˜๋ฉด ์ฝ”๋“œ์˜ ์„ฑ๋Šฅ์„ ์˜ˆ์ธกํ•˜๊ณ  ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋ฌด๊ธฐ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.